package cn.iocoder.yudao.module.javainfo.controller.admin.financialflow.vo;

import io.swagger.v3.oas.annotations.media.Schema;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.util.List;

@Schema(description = "管理后台 - 用户消费统计 Response VO")
@Data
public class UserConsumptionStatsRespVO {

    @Schema(description = "用户ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024")
    private Long userId;

    @Schema(description = "用户名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "张三")
    private String userName;

    @Schema(description = "总消费金额（单位：分）", requiredMode = Schema.RequiredMode.REQUIRED, example = "10000")
    private Long totalAmount;

    @Schema(description = "宠物消费统计列表", requiredMode = Schema.RequiredMode.REQUIRED)
    private List<PetConsumptionStats> petStats;

    @Schema(description = "宠物消费统计")
    @Data
    @NoArgsConstructor
    @AllArgsConstructor
    public static class PetConsumptionStats {

        @Schema(description = "宠物ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "2048")
        private Long petId;

        @Schema(description = "宠物名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "小白")
        private String petName;

        @Schema(description = "消费金额（单位：分）", requiredMode = Schema.RequiredMode.REQUIRED, example = "5000")
        private Long amount;

        @Schema(description = "消费次数", requiredMode = Schema.RequiredMode.REQUIRED, example = "10")
        private Integer count;
    }
}

